iT邦幫忙

2023 iThome 鐵人賽

DAY 29
0
Security

一個人的藍隊系列 第 29

容器安全:CIS Docker Benchmark 實踐

  • 分享至 

  • xImage
  •  

雖然上次列出目錄的文章表示要講雲端安全防禦
但是實作的部分要 Demo 截圖稍微麻煩一點點,所以改成講Docker容器安全防禦
而且操作更簡單,大家都可以跟著一起實作~

容器安全是目前企業大量採用的技術之一,其中 Docker 更是主流發展選擇。所以要守護好容器的安全,做好 Docker 容器安全防禦就成為了一件重要的事情。

Docker 容器安全

Docker 無疑對容器技術的發展和普及起到了關鍵作用。Docker 於2013年推出,簡化了容器的使用和管理,使容器技術變得更加易於採用。Docker 利用了多項關鍵技術達成容器化的實踐,解決了許多傳統軟體開發和部署中的挑戰,並提供了一種現代、靈活且高效的方法來管理應用程序。

此外,Docker 擁有龐大的生態系統,活躍的社區參與。這意味著有許多開發人員和為維運人員貢獻了工具、插件和解決方案,以擴展Docker的功能和應用。

容器技術本身即具有一些技術和機制來使得應用程式具備安全性,Docker 提供了一些內置的安全功能,確保應用程序和系統的安全性和防禦性。以下是一些 Docker 容器技術中採用或可選的安全技術和機制。

  • Chroot:是一種 Unix/Linux 功能,用於更改進程的根目錄,從而限制進程的檔案系統訪問。在Docker 中,Chroot 用於創建容器的根文件系統,使容器感覺自己運行在一個獨立的文件系統中。
  • Namspace:是一種 Linux 內核功能,用於實現進程和資源的隔離。Docker 使用多種不同的命名空間(如PID、網絡、掛載、IPC等)來隔離容器中的進程和資源,確保它們互不干擾。
  • CGroup:是Linux的另一項功能,用於限制和監視進程的資源使用,如 CPU、記憶體、硬碟IO等。Docker 使用 CGroup 來限制容器的資源使用,以確保容器不會耗盡主機的資源。
  • AppArmor:是一個 Linux 安全模組,用於強化應用程序的安全性,限制其訪問主機上的文件和資源。Docker 可以配置 AppArmor 策略,以限制容器的行為,增加容器的安全性。
  • Seccomp:是一種 Linux 內核功能,用於限制進程可以使用的系統調用。Docker 中可以使用Seccomp 配置文件,以限制容器中的進程可以執行的系統調用,減少攻擊面。
  • Linux capability:是一種細粒度的權限系統,允許進程僅擁有其所需的特定特權,而不是完整的 root 權限。Docker容器通常運行在有限的 Linux capabilities 下,以減少潛在的安全風險。
  • no-new-privilege:是一個 Linux 安全功能,用於限制進程在運行時提升自己的權限。當容器啟用 no-new-privilege 時,它將無法在運行時提升特權,提高了容器的安全性。

除了上述技術以外,了解 Docker Registry 的傳輸安全以及中間人攻擊、惡意 IMAGE 的安全風險、還有容器逃脫的威脅,都是需要花費時間去了解探討的。

在Docker的官方網站中,也有提供安全(Security)的條目,提供給使用人員對於 Docker 安全性有更正確的了解和認證。總之,Docker 安全性是一個綜合性的議題,需要多方面的努力和措施。組織應該定期評估和更新容器環境的安全性,以確保應用程序和數據得到適當的保護。

這邊文章提供幾個方向可以去了解如何實踐容器安全,分別是:

  • MITRE ATT&CK Containers Matrix
  • OWASP Docker Security Cheat Sheet
  • CIS Docker Benchmark

MITRE ATT&CK Containers Matrix

https://ithelp.ithome.com.tw/upload/images/20231013/20114110UQre6AOEtV.png

MITRE ATT&CK Containers Matrix 是一個專為容器安全性設計的子框架,用於描述攻擊者可能使用的戰術和技術,以及如何檢測和防止這些攻擊。這個矩陣提供了一個攻擊行為的模型,有助於組織更深入地了解容器中的潛在威脅。

該矩陣包括多個戰術,包括初始訪問、執行、持久性、特權升級、資料收集、損壞、命令與控制、橫向移動、執行遠端指令和濫用權限等。每個戰術都包含多個相關的技術,這些技術進一步細分為攻擊者可能使用的工具、方法或過程。

補充1:要注意 Containers Matrix 並非是成熟不變的,仍然有可能動態的更新。

補充2:MITRE ATT&CK Matrix for Enterprise 包含了針對容器技術的技術和戰術,而 Containers Matrix 則是專門針對容器安全性的子框架。

OWASP Docker Security Cheat Sheet

OWASP Docker Security Cheat Sheet 提供一個易於使用的Docker常見安全錯誤和最佳實踐清單,以幫助保護Docker容器。Cheat Sheet 當中列有十二項規則如下:

RULE #0 - Keep Host and Docker up to date
保持主機和 Docker 更新至最新版本。

RULE #1 - Do not expose the Docker daemon socket (even to the containers)
不要暴露 Docker 守護進程套接字(即使對容器也是如此)。

RULE #2 - Set a user
設置一個使用者。

RULE #3 - Limit capabilities (Grant only specific capabilities, needed by a container)
限制功能(僅授予容器所需的特定功能)。

RULE #4 - Add –no-new-privileges flag
添加--no-new-privileges標誌。

RULE #5 - Disable inter-container communication (--icc=false)
禁用容器間通信(--icc=false)。

RULE #6 - Use Linux Security Module (seccomp, AppArmor, or SELinux)
使用Linux安全模組(seccomp、AppArmor或SELinux)。

RULE #7 - Limit resources (memory, CPU, file descriptors, processes, restarts)
限制資源(內存、CPU、文件描述符、進程、重啟)。

RULE #8 - Set filesystem and volumes to read-only
設置檔案系統和卷為唯讀。

RULE #9 - Use static analysis tools
使用靜態分析工具。

RULE #10 - Set the logging level to at least INFO
設置記錄級別至少為INFO。

Rule #11 - Lint the Dockerfile at build time
在構建時對Dockerfile進行Lint檢查。

Rule #12 - Run Docker in root-less mode
以非root模式運行Docker。

CIS Docker Benchmark

除了 Docker 官方文件外,組織還可以參考 CIS Docker Benchmark。CIS Benchmarks 是一系列針對安全性的基準,由 Center for Internet Security(CIS)機構制定,為企業、政府和其他組織提供一個安全性標準,協助它們保護其IT系統和數據。

這些基準適用於各種 IT 產品和技術,包括操作系統、數據庫、應用程序、網絡設備、虛擬化平台和雲服務等。基準是通過安全專家和業界專家的廣泛研究和評估制定的,並且根據實際威脅和攻擊模式的演變不斷更新和改進。

CIS Benchmark 為 IT 系列和應用程式提供了一套詳盡的安全性建議,這些建議涵蓋了多個方面,包括身份驗證、授權、加密、防火牆、網絡安全、日誌管理等。它們還提供了一些最佳實踐,以協助企業和組織實施這些建議,確保其IT系統和數據的安全性。

CIS 基準的另一個重要特點是,它們可以廣泛應用於不同類型的組織和行業,包括政府、金融、醫療、教育、零售等。也可以幫助這些組織遵守法規和標準,如 HIPAA、PCI DSS、ISO 27001 等。

CIS Docker Benchmarks 是 CIS 制定的一套專屬於Docker的安全性基準,這些基準提供了一系列建議和最佳實踐,可幫助企業和組織確保其Docker容器的安全性。基準涵蓋了Docker主機和容器的多個方面,提供了具體而全面的Docker安全性建議,確保在生產環境中使用的Docker容器得到適當的保護。

CIS Docker Benchmark 提供了以下八類建議,分別為:

  • 主機配置(Host Configuration)
  • Docker 守護進程配置(Docker daemon configuration)
  • Docker 守護進程配置文件(Docker daemon configuration files)
  • 容器鏡像和構建文件配置(1. Container Images and Build File Configuration)
  • 容器運行時配置(Container Runtime Configuration)
  • Docker 安全操作(1. Docker Security Operations)
  • Docker Swarm 配置(1. Docker Swarm Configuration)
  • Docker 企業配置(1. Docker Enterprise Configuration)

遵循與實踐以上的 CIS Docker Benchmark,可以幫助確保組織內 Docker 環境的安全性和合規性。此外,與容器相關的部分,CIS也有提供Kubernetes 與 OpenShift 的 Benchmarks安全基準。

藍隊小提醒
CIS Benchmarks 和藍隊之間的關聯是密不可分的。Benchmarks 提供了具體的安全配置建議,可以為藍隊提供一個明確的指導框架,以幫助他們建立更強大的安全防禦措施。藍隊可以參考 Benchmarks 中的建議,來確保系統和應用程式的配置符合最佳實踐,同時進行相應的監控和檢測。

Script for CIS Docker Benchmarks

關於 CIS 的文件可以在官方下載,,當然你想要在網路上找到一些 PDF 檔也是很容易(雖然版本不一定是最新的)。

而實作的話,這篇推薦一個免費的工具

Docker Bench for Security 腳本
https://github.com/docker/docker-bench-security

Docker Bench for Security 是一個腳本,用於檢查在生產中部署 Docker 容器的數十種常見最佳實踐。

使用上非常簡單

git clone https://github.com/docker/docker-bench-security.git
cd docker-bench-security
sudo sh docker-bench-security.sh

https://ithelp.ithome.com.tw/upload/images/20231014/20114110w0NPNI3Tst.png

顯示的結果很容易看,如果沒有要用 sh 腳本
你也可以使用 docker 執行
而輸出的結果,也有 json 格式,方便後續要進行其他處理

不過要提醒一下,儘管容器安全是值得關注的重點之一,但在實踐容器安全時需要特別小心。
因為有些不當的安全措施可能會對軟體開發和應用程式運行的功能和環境產生負面影響。
今天對於 Docker 容器安全的介紹就到這裡啦~ 
明天要開始上課上課上課上課啦!!!
蠟燭多頭燒~燒起來~~~~~


上一篇
Compliance as Code 入門:利用 Inspec 進行合規檢查
下一篇
SSH 的防禦:以及藍隊開源工具補充
系列文
一個人的藍隊30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言